Significant advances in industrial process control technology have vastly improved all aspects of factory and plant operation. Before the introduction of today's modern industrial process control systems, industrial processes were operated/controlled by humans and rudimentary mechanical controls. As a consequence, the complexity and degree of control over a process was limited by the speed with which one or more people could ascertain a present status of various process state variables, compare the current status to a desired operating level, calculate a corrective action (if needed), and implement a change to a control point to affect a change to a state variable.
Improvements to process control technology have enabled vastly larger and more complex industrial processes to be controlled via programmed control processors. Control processors execute control programs that read process status variables, execute control algorithms based upon the status variable data and desired set point information to render output values for the control points in industrial processes. Such control processors and programs support a substantially self-running industrial process (once set points are established).
Notwithstanding the ability of industrial processes to operate under the control of programmed process controllers at previously established set points without intervention, supervisory control and monitoring of control processors and their associated processes is desirable. Such oversight is provided by both humans and higher-level control programs at an application/human interface layer of a multilevel process control network. Such oversight is generally desired to verify proper execution of the controlled process under the lower-level process controllers and to configure the set points of the controlled process.
Manufacturing/process control systems are modified due to changes in the process control devices and the processes themselves. Thus, it is important in such instances to provide a means for quickly configuring/re-configuring without touching unchanged portions of the system. It is also important to provide a means for making such changes while minimizing disruptions to the operation of the industrial process—e.g., minimizing the time that the process stands idle.
In view of the interest and desirability to continually improve supervisory process control and manufacturing information systems, there is a strong desire to not be locked into a single architecture for a supervisory process control and manufacturing information system. Process control systems change, and it is desirable to have higher level systems that adapt to such changes regardless of their magnitude. Furthermore, less flexible supervisory process control and manufacturing information system offerings require designers of process control installations to take into consideration the long-term requirements of an application because of the relative inflexibility of the application to modifications once it is installed.
However, such application inflexibility is undesirable in the conservative industrial control systems market. The process control industry tends to pilot, and often the designers are not fully aware of the full extent and form of the automation that will ultimately be incorporated in a final installation. Later in the life of a plant, when new functionality is added the new control system components leverage or merge existing systems. In such instances where the process control system has changed significantly, there are advantages to incorporating a different architecture into the installed supervisory process control application.
Another aspect to a flexible architecture for an supervisory process control and manufacturing information application is the need to enable customers to design and the implement on their own, customized applications and even the objects that are incorporated into the applications. The set of various types of systems wherein the supervisory process control applications are incorporated is virtually limitless. A provider of supervisory process control applications cannot possibly develop all types of objects/components to support every potential use of the application by customers. Nor can the provider possibly possess sufficient knowledge of the particular control needs of each customer. Thus, customers need to configure (or commission another to configure), to a certain extent, their own customized application objects to meet the specific needs of a particular application. The customers are in the best position to know what features they need in their supervisory level control applications. The challenge to the supplier of supervisory level application software/systems is to enable the customers (or third parties) to efficiently and quickly design and implement customized applications meeting the customers' particular needs.
In the course of designing their own applications and components thereof, customers, and their code developers augment base software components with additional software instructions to render customized executable applications. One such way to augment software is through the integration of scripts into existing object packages. Scripts, in general, are simple, interpreted, text-based program instructions that bridge the gap between functionality provided in a base system and its associated development tools, and a desired customized system configured for a particular process control application. Such scripts have been used in the form of macros to extend application functionality and to integrate external applications and databases.
Scripts are utilized in a variety of areas of process control and manufacturing information application components. A non-exhaustive list of such areas include: supervisory process control, batch control, alarm detection, database maintenance, and report generation. A variety of scripting languages are known that are utilized to implement scripts for carrying out augmentation and integration of base software in the above-identified areas. Furthermore, some scripting languages are better suited to certain areas than others, and programmers tend to acquire script programming skills based upon the area in which they practice. Thus, development and runtime environments for supervisory process control and manufacturing information applications that support only a single scripting language potentially impose a burden upon customers, and developers that customize such systems, to acquire new skills to program scripts that really aren't well suited for a particular integration/augmentation task.